package course.examples.Graphics.ViewPropertyAnimator;
import android.app.Activity;
import android.os.Bundle;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.AnticipateInterpolator;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.LinearInterpolator;
import android.view.animation.OvershootInterpolator;
import android.widget.ImageView;
public class GraphicsViewPropertyAnimatorActivity extends Activity {
private ImageView mImageView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
mImageView = (ImageView) findViewById(R.id.icon);
if (hasFocus) {
fadeIn.run();
}
}
Runnable fadeIn = new Runnable() {
public void run() {
mImageView.animate().setDuration(3000)
.setInterpolator(new LinearInterpolator()).alpha(1.0f)
.withEndAction(rotate);
}
};
Runnable rotate = new Runnable() {
public void run() {
mImageView.animate().setDuration(4000)
.setInterpolator(new AccelerateInterpolator())
.rotationBy(720.0f).withEndAction(translate);
}
};
Runnable translate = new Runnable() {
public void run() {
float translation = getResources()
.getDimension(R.dimen.translation);
mImageView.animate().setDuration(3000)
.setInterpolator(new OvershootInterpolator())
.translationXBy(translation).translationYBy(translation)
.withEndAction(scale);
}
};
Runnable scale = new Runnable() {
public void run() {
mImageView.animate().setDuration(3000)
.setInterpolator(new AnticipateInterpolator())
.scaleXBy(1.0f).scaleYBy(1.0f).withEndAction(fadeOut);
}
};
Runnable fadeOut = new Runnable() {
public void run() {
mImageView.animate().setDuration(2000)
.setInterpolator(new DecelerateInterpolator()).alpha(0.0f);
}
};
}